package br.com.gecandango.beans;

import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;

@Entity
@NamedQueries( {
	@NamedQuery(name = "Atividade.listAll", query = "from Atividade") })
public class Atividade extends Entidade {
	private static final long serialVersionUID = 1L;
	private String nome;
	private String objetivos;
	
	//areas de desenvolvimento
	private String espiritual;
	private String fisico;
	private String afetivo;
	private String social;
	private String carater;
	private String intelectual;
	
	//ativo, intelectual
	private String tipo;
	//lobinhos, escoteiros...
	private String aplicacao;
	private String locaisIndicados;
	private String duracao;
	private String quantidadeParticipantes;
	private String descricao;
	private String observacao;
	
	@ManyToMany(fetch=FetchType.LAZY)
	@JoinTable(
	name="programacao_atividade",
	joinColumns={@JoinColumn(name="id_atividade")},
	inverseJoinColumns={@JoinColumn(name="id_programacao")})
	private List<Programacao> programacoes;
	
	@ManyToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER)  
	private List<Material> materiais;
	
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getLocal() {
		return locaisIndicados;
	}
	public void setLocal(String local) {
		this.locaisIndicados = local;
	}
	public String getTipo() {
		return tipo;
	}
	public void setTipo(String tipo) {
		this.tipo = tipo;
	}
	public String getObjetivos() {
		return objetivos;
	}
	public void setObjetivos(String objetivos) {
		this.objetivos = objetivos;
	}
	public String getEspiritual() {
		return espiritual;
	}
	public void setEspiritual(String espiritual) {
		this.espiritual = espiritual;
	}
	public String getFisico() {
		return fisico;
	}
	public void setFisico(String fisico) {
		this.fisico = fisico;
	}
	public String getAfetivo() {
		return afetivo;
	}
	public void setAfetivo(String afetivo) {
		this.afetivo = afetivo;
	}
	public String getSocial() {
		return social;
	}
	public void setSocial(String social) {
		this.social = social;
	}
	public String getCarater() {
		return carater;
	}
	public void setCarater(String carater) {
		this.carater = carater;
	}
	public String getIntelectual() {
		return intelectual;
	}
	public void setIntelectual(String intelectual) {
		this.intelectual = intelectual;
	}
	public String getAplicacao() {
		return aplicacao;
	}
	public void setAplicacao(String aplicacao) {
		this.aplicacao = aplicacao;
	}
	public String getLocaisIndicados() {
		return locaisIndicados;
	}
	public void setLocaisIndicados(String locaisIndicados) {
		this.locaisIndicados = locaisIndicados;
	}
	public String getDuracao() {
		return duracao;
	}
	public void setDuracao(String duracao) {
		this.duracao = duracao;
	}
	public String getQuantidadeParticipantes() {
		return quantidadeParticipantes;
	}
	public void setQuantidadeParticipantes(String quantidadeParticipantes) {
		this.quantidadeParticipantes = quantidadeParticipantes;
	}
	public String getDescricao() {
		return descricao;
	}
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	public String getObservacao() {
		return observacao;
	}
	public void setObservacao(String observacao) {
		this.observacao = observacao;
	}
	public List<Material> getMateriais() {
		return materiais;
	}
	public void setMateriais(List<Material> materiais) {
		this.materiais = materiais;
	}
	public List<Programacao> getProgramacoes() {
		return programacoes;
	}
	public void setProgramacoes(List<Programacao> programacoes) {
		this.programacoes = programacoes;
	}

}
